package org.projetjava.service;

import java.util.ArrayList;
import java.util.List;

import org.projetjava.metier.dao.ParcoursDao;
import org.projetjava.metier.dao.PoiDao;
import org.projetjava.metier.model.Lieu;
import org.projetjava.metier.model.News;
import org.projetjava.metier.model.Parcours;
import org.projetjava.metier.model.Poi;

public class GestionParcours {
	
	private ParcoursDao parcoursDao = new ParcoursDao();
	private Parcours parcoursOuvert = null;


	public int ajouter(Parcours parcours) {
		// TODO Auto-generated method stub
		News news = new News();
		news.setLibelle("Ajout du Parcours : "+parcours.getLibelle());
		news.setDescription(parcours.getDescription());
		news.setHypertext(parcours.getLienHyperText());
		news.setImages(parcours.getLienImages());
		news.setRef(parcours.getLibelle());
		news.setTyperef("Parcours");
		GestionNews gn = new GestionNews();
		gn.ajouter(news);

		int result = parcoursDao.ajouter(parcours);
		
		return result;
	}
	
	public Poi selectPoi(String select)
	{
		PoiDao poiDao = new PoiDao();
		Poi poi = poiDao.SelectPoiParLibelle(select);
		return poi;
	}


	public int supprimer(Parcours parcours) {
		// TODO Auto-generated method stub
		
		int result = parcoursDao.supprimer(parcours);
		
		return result;
	}


	public int modifier(Parcours parcours) {
		// TODO Auto-generated method stub
		News news = new News();
		news.setLibelle("Modification du Parcours : "+parcours.getLibelle());
		news.setDescription(parcours.getDescription());
		news.setHypertext(parcours.getLienHyperText());
		news.setImages(parcours.getLienImages());
		news.setRef(parcours.getLibelle());
		news.setTyperef("Parcours");
		GestionNews gn = new GestionNews();
		gn.ajouter(news);
		
		int result = parcoursDao.modifier(parcours);
		
		return result;
	}
	
	public List<String> rechercher(String recherche, String critere){
		
		List<String> listResultat = new ArrayList<>();
		parcoursDao = new ParcoursDao();
		switch(critere)
		{
			case "Par nom exact" :
			{
				listResultat = parcoursDao.rechercheParNomExact(recherche);
				break;
			}
			
			case "Par partie du nom" :
			{
				
				listResultat = parcoursDao.rechercheParNom(recherche);
				break;
			}
			
			case "Par libelle ou description" :
			{
				listResultat = parcoursDao.rechercheParLibelleDescription(recherche);
				break;
			}
			
			
		}
		
		return listResultat;
		
		
	}
	
	public Parcours selectionner(String libelle){
		
		this.parcoursOuvert = parcoursDao.selectionParcours(libelle);
		return this.parcoursOuvert;
		
		
	}
	
	public List<String> listerPoi()
	{
		PoiDao poiDao = new PoiDao();
		return poiDao.ListPoi();
				
	}




}
